#ifndef STRINGUTILS_H
#define STRINGUTILS_H

#include <QString>
#include <QMap>
#include <QVector>

/// @brief 字符串工具处理
/// 负责简繁转换、拼音模糊匹配、中文字符检测、拼音分割
class StringUtils
{	
public:
	// func
	// 简繁转换
	static QString simplifiedToTraditional(const QString& simplifiedStr);
	static QString traditionalToSimplified(const QString& traditionalStr);

	// 拼音处理
	static bool matchFuzzyPinyin(const QString& inputPinyin, const QString& targetPinyin, const QMap<QString, QString>& fuzzyRules);
	static QVector<QString> splitPinyin(const QString& fullPinyin);

	// 字符检测
	static bool isChineseChar(const QChar& c);
	static bool containsChinese(const QString& str);

private:
	StringUtils() = default;	// 私有构造（禁止实例化）
	static void initSimplifiedTraditionalMap();		// 初始化简繁映射表（静态懒加载）

private:
	static QMap<QChar, QChar> s_simplifiedToTraditional;
	static QMap<QChar, QChar> s_traditionalToSimplified;
	static bool s_mapInited;

};


#endif	// STRINGUTILS_H